package com.punch.common.vo.system.area;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * TreeAreaVO-地区列表VO
 *
 * @author wujj
 * @version 1.0.0
 * @since 2020/6/4 19:06
 */
@Data
@ApiModel(description = "地区列表VO")
public class TreeAreaVO implements Serializable {

    @ApiModelProperty(name = "id", notes = "地区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer areaId;

    @ApiModelProperty(name = "parentId", notes = "父级地区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer parentId;

    @ApiModelProperty(name = "fullName", notes = "地区名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String fullName;

    @ApiModelProperty(name = "shortName", notes = "地区名称")
    private String shortName;

    @ApiModelProperty(name = "status", notes = "状态,默认启用")
    private Integer status;

    @ApiModelProperty(name = "sortBy", notes = "排序")
    private Integer sortBy;

    @ApiModelProperty(name = "childNumber", notes = "子级个数，0为没有子节点")
    private Integer childNumber;

    @ApiModelProperty(name = "adCode", notes = "地区编码", required = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String adCode;

    /**
     * 经度
     */
    @ApiModelProperty(name = "lng", notes = "经度", required = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String lng;

    /**
     * 纬度
     */
    @ApiModelProperty(name = "lat", notes = "纬度", required = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String lat;
}
